#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
import wx
import MySQLdb

# Genero una ventana
class Ventana (wx.App):
    def OnInit(self, id):
        
        self.db = MySQLdb.connect('localhost', 'martin', 'martin', 'martin', charset='UTF8')
        c = self.db.cursor()
        c.execute('''SELECT titulo, genero, director, actor, anio, origen FROM tabla_peliculas WHERE id_peliculas = %s''', (id_peli))
        q = c.fetchone()
        c.close()
        print q[0]
            
        # Panel donde se apolla los widgets
        self.ventana = wx.Frame (parent = None, title = 'Listado de Películas', size = (500,400), pos = (300,200))
        panel = wx.Panel (self.ventana, -1)
        
        # Mascota: Ingreso
        t_titulo = wx.StaticText (panel, -1, u'Título', pos = (20,25))
        self.i_titulo = wx.TextCtrl (panel, -1, q[0], size = (390,30),  pos = (100,20))
        
        # Tipo: Desplegable
        t_genero = wx.StaticText (panel, -1, u'Género', pos = (20,65))
        l_genero = ['Drama', 'Acción', 'Comedia', 'Terror', 'Suspenso', 'Ciencia Ficción', 'Thriller', 'Bélica', 'Catástrofe', 'Infantil', 'Fantasía', 'Serie', 'Documental']
        self.d_genero = wx.ComboBox (panel, -1, u'', (100,60) , (390,30), l_genero, wx.CB_DROPDOWN|wx.CB_READONLY)
        
        
        # Director: Ingreso
        t_director = wx.StaticText (panel, -1, u'Director', pos = (20,105))
        self.i_director = wx.TextCtrl (panel, -1, u'', size = (390,30),  pos = (100,100))
        
        # Actuaciones: Ingreso
        t_acor = wx.StaticText (panel, -1, u'Actores', pos = (20,145))
        self.i_actor = wx.TextCtrl (panel, -1, u'', size = (390,30),  pos = (100,140))
        
        # Año: Ingreso
        t_anio = wx.StaticText (panel, -1, u'Año', pos = (20,185))
        self.i_anio = wx.TextCtrl (panel, -1, u'', size = (390,30),  pos = (100,180))
        
        # Origen: Ingreso
        t_origen = wx.StaticText (panel, -1, u'Origen', pos = (20,225))
        self.i_origen = wx.TextCtrl (panel, -1, u'', size = (390,30),  pos = (100,220))
        
        # Estrellas: Rango (5)
        t_estrellas = wx.StaticText (panel, -1, u'Estrellas', pos = (20,265))
        self.r_estrellas = wx.SpinCtrl (panel, -1, u'', (100,260), (120,-1))
        self.r_estrellas.SetRange (1,5)
        self.r_estrellas.SetValue (0)
        
        
        # Aceptar/Cancelar: Botones
        b_aceptar = wx.Button (panel, -1, u'Aceptar', size = (-1,-1), pos = (290,360))
        b_cancelar = wx.Button (panel, -1, u'Cancelar', size = (-1,-1), pos = (390,360))
        self.Bind(wx.EVT_BUTTON, self.OnAceptarBoton, b_aceptar)
        self.Bind(wx.EVT_BUTTON, self.OnCancelarBoton, b_cancelar)
        
        self.ventana.Show()
        return True
    
    # Aceptar: guardar los datos en db [tabla_peliculas] y mostrar un mensaje con los datos ingresados.
    def OnAceptarBoton(self, event):
        
        titulo = self.i_titulo.GetValue()
        genero = self.d_genero.GetValue()
        director = self.i_director.GetValue()
        actor = self.i_actor.GetValue()
        anio = self.i_anio.GetValue()
        origen = self.i_origen.GetValue()
        estrellas = self.r_estrellas.GetValue()
        estrellas = str (estrellas)
        
        c = self.db.cursor()
        c.execute('''INSERT INTO tabla_peliculas (titulo, genero, director, 
        actor, anio, origen, estrellas) VALUES (%s, %s, %s, %s, %s, %s, %s)''' , (titulo, genero, director, 
        actor, anio, origen, estrellas))
        c.close()
        
        # Mensaje: Devolver un mensaje con los datos ingresados
        wx.MessageBox (u'\nTítulo: %s \nGénero: %s \nDirector: %s \nActor: %su \nAño: %s u\nOrigen: %s \nEstrellas: %s' %(titulo, genero, director, actor, anio, origen, estrellas), u'Datos Ingresados', wx.OK | wx.ICON_INFORMATION, None)
        
        # Borrar: Volver a ventana en blanco.
        titulo = self.i_titulo.SetValue('')
        genero = self.d_genero.SetValue('')
        director = self.i_director.SetValue('')
        actor = self.i_actor.SetValue('')
        anio = self.i_anio.SetValue('')
        origen = self.i_origen.SetValue('')
        estrellas = self.r_estrellas.SetValue(1)
        
    # Cancelar: se cierra la ventana        
    def OnCancelarBoton(self, event):
        wx.MessageBox (u'¿Realmente desea cancelar la operación?', u'Atención', wx.CANCEL|wx.ICON_INFORMATION, None)

        self.ventana.Destroy()
            
        
programa = Ventana()
programa.MainLoop() 


        

